home *** CD-ROM | disk | FTP | other *** search
/ Inside Mac Games Volume 4 #9 / IMG 40 Sep 1996.iso / More Goodies / More for Your Game / Doom II / DFLE Users Folder / Goal & Inf demos / INFFILE.TXT < prev    next >
Text File  |  1996-02-09  |  45KB  |  1,218 lines

  1. ˛7#éE¨ÙçE™™™™™™)8´a´a´a´a
  2. ´kL´∑´∑6´Ìx´a¨e ¨Ö¨√*¨Ì™ ¨π¨¢¨ª¨ø¨Ì¨√¨√¨√¨√¨√¨√        ------------------------------------------------------
  3.         |  COMPLETE EXPLANATION OF THE DARK FORCES INF FILE  |
  4.         |    by Jereth Kok (kokj4m@stmichaels.vic.edu.au)    |
  5.         ------------------------------------------------------
  6.  
  7.  
  8. Acknowledgements:
  9. -----------------
  10.  
  11. LucasArts Entertainment Company --      creators of Dark Forces
  12. Yves Borckmans                  --      creator of DFUSE, some additional
  13.                                         information
  14. Ben & Pat McBride               --      makers of the DFUSE tutorials 
  15. Anyone else who I haven't mentioned and believe that they have made 
  16. a significant contribution to the world of Dark Forces editing!
  17.  
  18.  
  19. G'day, fellow Dark Forces editors!
  20.  
  21. This file (INFFILE.TXT) gives an explanation of most of the functions
  22. of the .INF file, which is an essential part of a true Dark Forces level. The
  23. SECBASE level which is included contains demonstrations of elevators and  
  24. triggers, which are some of the .INF file's functions. Remeber to put the
  25. SECBASE.* files in your Dark directory! Take a look at SECBASE.INF, to see
  26. the examples, then play the level to see how they work.
  27.  
  28. I assume that anyone reading this file or using the demo already has managed
  29. to obtain Yves Borckman's DFUSE program. You will need LEVMAP, a .LEV and .O
  30. file editor which is a part of DFUSE. However, although LEVMAP reads the .INF
  31. file, it does not edit it. This must be done with a standard text file editor,
  32. such as MS-DOS editor. This is extremely complicated, and any slight error
  33. will stuff up a level. Believe me, it took me ages to figure out the basic
  34. workings of the .INF file! I had to look through all of the examples in 
  35. LucasArt's original 14 levels! I don't really want every single person to go 
  36. through that, so I made this file and the demo.
  37.  
  38. Ben and Pat McBride gave you a simple example of using the INF file, showing
  39. how to make a moving floor. This file is for die-hard level makers, showing
  40. the usage of just about everything that can be in an INF file (anything I've
  41. come across in my wanderings through the INF files of the original levels).
  42. I've tried to make it as un-technical as possible!
  43.  
  44.  
  45. CONTENTS
  46. --------
  47.  
  48. 1. INF file description
  49. 2. Variables for elevators and triggers
  50. 3. Elevators
  51. 4. Triggers
  52. 5. Teleporter chutes
  53. 6. Messages
  54. 7. Other stuff
  55.  
  56.  
  57. 1. INF (INFormation) file description
  58. -------------------------------------
  59.  
  60. To those of you who have edited DOOM maps before, the INF file is like DOOM's
  61. sector tags and line actions, only much more powerful. Variables are used
  62. so that item actions can be specified customly, rather than just using set 
  63. actions such as "platform lowers, then raises to nearest floor". 
  64.  
  65. To those of you who haven't done DOOM editing, here is the best I can do to
  66. describe the INF file: The LEV file, as you should know, contains information
  67. on the architecture of a level, ie. Sectors, Lines and Vertices. However, the
  68. INF file contains dymanimcs of a level, i.e. Sectors and Lines that move
  69. around and interact with the player. For example, the LEV file would contain a
  70. stationary room. The INF file could make a lift that goes up and down and a 
  71. switch that operates it. 
  72.  
  73. Here follows a description of each elevator (moving sector), trigger and
  74. message, so get a coke and bag of chips and get comfortable...
  75.  
  76.  
  77. 2. VARIABLES FOR ELEVATORS AND TRIGGERS
  78. ---------------------------------------
  79.  
  80. Firstly, the possible variables for elevators and triggers must be
  81. understood. Note that all of these variables may not be used in every
  82. elevator or trigger. That is, a particular elevator or trigger may only
  83. contain a few of these variables.
  84.  
  85.  
  86. The variables:
  87. ---------------------------------------  
  88. | stop           (elevators)          |
  89. | master         (elevators)          |
  90. | event_mask     (elevators/triggers) |
  91. | event          (triggers)           |
  92. | entity_mask    (triggers, I think!) |
  93. | speed          (elevators)          |
  94. | center         (elevators)          |
  95. | angle          (elevators)          |
  96. | key            (elevators)          |
  97. | client         (triggers)           |
  98. | slave          (elevators)          |
  99. ---------------------------------------
  100.  
  101. Here are descriptions and explanations on the usage of each of the variables.
  102. Anything in square brackets - [ ] - need to be replaced with appropriate
  103. values.
  104.  
  105.  
  106. stop
  107. ----
  108. description:
  109.  
  110. A stop is a value that an elevator can arrive at. This value varies depending
  111. on the type of elevator (eg. the value for elevator move_floor is the 
  112. altitude of the floor). After the stop value, there needs to be another value.
  113. This other value can either be the time the elevator remains at the stop in
  114. seconds, "hold", "terminate" or "complete". Hold means that the elevator will
  115. remain at the stop until told to move to another stop. Terminate means that
  116. the elevator will terminate at the stop (it will stay there permanently). 
  117. Complete means that the mission will be complete when the elevator arrives
  118. at the stop.
  119.  
  120. usage:
  121.         stop: [value] [time]/hold/terminate/complete
  122.  
  123.  
  124. master
  125. ------
  126. description:
  127.  
  128. A master value can either be on or off. If master is on, the elevator will 
  129. function. If master is off, the elevator won't function, even if the
  130. event_mask (more on this later!) is carried out or a message (more on this
  131. later too) is sent, telling it to move.
  132.  
  133. usage:
  134.         master: on/off
  135.  
  136.  
  137. event_mask
  138. ----------
  139. description:
  140.  
  141. Event_mask is a value which determines under what conditions an elevator or
  142. trigger will function. For an elevator, the conditions will move it 
  143. to its next stop. For a trigger, the conditions determine how it can be
  144. triggered. These are the possible values:
  145.  
  146. ---------------------------------------------------------------------
  147. | 0       Nothing                                                   |
  148. | 1       Cross line from front side                                |
  149. | 2       Cross line from back side                                 |
  150. | 4       Enter sector                                              |
  151. | 8       Leave sector                                              |
  152. | 16      Nudge line from front side / Nudge sector from inside     |
  153. | 32      Nudge line from back side /  Nudge sector from outside    |
  154. | 64      Explosion                                                 |     
  155. | 256     Shoot at line (see entity_mask)                           |
  156. | 512     Touch floor of sector                                     |
  157. |                                                                   |
  158. | Custom values (see event:)    Set off by a trigger with an event: |              |     
  159. ---------------------------------------------------------------------
  160.  
  161. If you want a sector or line to have more than one of these values, then add
  162. the desired values up. For example, an elevator that can be operated by 
  163. entering the sector or nudging in from inside has event_mask: 20 (16 + 4).
  164.  
  165. usage:
  166.         event_mask: [value]
  167.  
  168.  
  169. event
  170. -----
  171. description:
  172.  
  173. Event creates a custom event value. A trigger can be given a custom event
  174. value, and any elevator with this event value as its event_mask value will
  175. operate when the trigger is triggered. The custom event value has to be a
  176. power of 2 that is 65536 or greater (65536, 131072, 262144, 524288, 1048576
  177. and so on).
  178.  
  179. This is needed with multi-class elevators where each class is controlled by 
  180. a separate switch. For example in the Research Facility (level 4), the sector
  181. called "Corecat" (spins around the Phrik metal) is two classes of elevator - 
  182. elevator move_fc and elevator morph_spin2. Two switches control these classes
  183. individually. If the "event" variable was not used, both switches would move
  184. both classes of elevator to its next stop at the same time. Utilising the
  185. "event" variable, it is made possible to have one switch control spinning and one
  186. control the moving floor/ceiling.
  187.  
  188.  
  189. usage:
  190.         event: [value]
  191.  
  192.  
  193. entity_mask
  194. -----------
  195. Entity_mask defines the entity that triggers certain triggers. The default
  196. is the player.
  197.  
  198. Here are the values that are used in the original 14 levels.
  199.  
  200. -----------------------------------------------------------------------------
  201. | -1            unknown, see IMPCITY.INF. Used with event_mask: 308 Seems to|
  202. |               work the same as *                                          | 
  203. | 1             an enemy (eg. an enemy crossing a line trigger)             |
  204. | 8             one of your weapons (eg. a "shoot" switch)                  |
  205. | *             usually used with event_mask: 272 - you can shoot at the    |
  206. |               trigger and nudge it                                        |
  207. | 2147483656    unknown, see the DTENTION.INF, RAMSHED.INF and ARC.INF.     |
  208. |                       Usually used with event_mask: 304. Seems to work the|
  209. |                       same way as *                                       |
  210. |----------------------------------------------------------------------------
  211.  
  212. **Could anyone who has figured out the unknown values please mail me at the
  213. address at the top of this file and tell me them??? **
  214.  
  215. Entity_mask is always used in triggers except in the Research Facility (level
  216. 4), where it is applied to an elevator (the big one that spins around the
  217. Phrik metal and moves up and down). I don't know its function here. Removing 
  218. the entity_mask from its sequence does not affect the elevator's workings!
  219. Any explanations???
  220.  
  221. usage:
  222.  
  223.         entity_mask: [value]
  224.  
  225.  
  226.  
  227. speed
  228. -----
  229. description:
  230.  
  231. Speed is a value that determines the speed of an elevator.
  232. Speed: 0 is instantaneous.
  233.  
  234. usage:
  235.         speed: [value]
  236.  
  237.  
  238. center
  239. ------
  240. description:
  241.  
  242. Center defines the X and Z coordinates of the center of revolution of a
  243. spinning sector.
  244.  
  245. usage:
  246.         center: [x coord] [z coord]
  247.  
  248.  
  249. angle
  250. -----
  251. description:
  252.  
  253. Angle defines the angle in degrees of a scrolling wall, floor or ceiling
  254. texture. Angle also defines the angle in degrees of a horizontally moving
  255. sector. For scrolling walls, angle: 0 is down. For scrolling walls, scrolling
  256. ceilings and moving sectors, angle: 0 is north.
  257.  
  258. usage:
  259.         angle: 0-360
  260.  
  261.  
  262. key
  263. ---
  264. description:
  265.  
  266. The value of key defines which key is needed to operate an elevator. Key is
  267. optional, of course. Just leave it out if you don't want your elevator to
  268. need a key to operate.
  269.  
  270. usage:
  271.         key: red/blue/yellow
  272.  
  273.  
  274. client
  275. ------
  276. description:
  277.  
  278. Client is used with triggers only. It defines which sector the trigger
  279. affects.
  280.  
  281. usage:
  282.         client: [client sector name]
  283.  
  284.  
  285. slave
  286. -----
  287. description:
  288.  
  289. Slave is optional and is used with elevators only. Slave determines which
  290. sector is a slave of the elevator it is applied to. The slave copies whatever
  291. the elevator does.
  292.  
  293. usage:
  294.         slave: [slave sector name]
  295.  
  296.  
  297.  
  298.  
  299.  
  300. 3. ELEVATORS
  301. ------------
  302.  
  303. Here are the elevators:
  304. ----------------------------------
  305. | elevator change_light          |
  306. | elevator change_wall_light     |
  307. | elevator morph_move1           |
  308. | elevator morph_move2           |
  309. | elevator morph_spin1           |
  310. | elevator morph_spin2           |
  311. | elevator elevator rotate_wall  |
  312. | elevator door                  |
  313. | elevator door_mid              |
  314. | elevator basic                 |
  315. | elevator inv                   |
  316. | elevator move_ceiling          |
  317. | elevator move_floor            |
  318. | elevator move_fc               |
  319. | elevator scroll_ceiling        |
  320. | elevator scroll_floor          |
  321. | elevator scroll_wall           |
  322. ----------------------------------
  323.  
  324. All elevators will comprise of this:
  325.  
  326.  
  327. item: sector    name: [sector name]
  328.         seq
  329.  
  330.         seqend
  331.  
  332.  
  333. Classes of elevators and relevant variable information are placed between the
  334. "seq" and "seqend". You can put more than one class between the "seq" and
  335. "seqend" to create a sector that is two or more types of elevator.
  336.  
  337. Here is a description of each elevator class and how to use it. The variables
  338. that are needed for each class are shown. Any variables in {} are optional.
  339.  
  340. Note that anything in square brackets - [] - must be replaced with
  341. appropriate values.
  342.  
  343. There can always be an unlimited amount of stops (except for elevator door 
  344. and elevator door_mid which don't use stops). The stop values for
  345. each type of elevator are explained.
  346.  
  347. IMPORTANT: Each time you add an elevator to the INF file, you must update
  348.            the "items #" at the start of the INF file.
  349.  
  350.  
  351. elevator change_light 
  352. ---------------------
  353. description: changing light level (ambience) in sector.
  354.              
  355.              Stop values are sector ambience.
  356.  
  357. usage: 
  358.                         class: elevator change_light
  359.                         event_mask: 
  360.                         {master: }
  361.                         stop: 
  362.                         speed:       
  363.                         {slave: }
  364.  
  365.  
  366. elevator change_wall_light 
  367. --------------------------
  368. description: changing ambience on wall. Note that you apply this elevator 
  369.              to a whole sector, but make specific walls change light by
  370.              giving those walls flag 1 bit 8 (allow change wall light) in
  371.              Levmap. Walls without this flag will not change ambience even
  372.              if their sector is an elevator change_wall_light. 
  373.  
  374.              Stops values are wall ambience.
  375.  
  376. usage:
  377.                         class: elevator change_wall_light
  378.                         event_mask: 
  379.                         {master: }
  380.                         stop:
  381.                         speed: 
  382.                         {slave: }
  383.  
  384.  
  385. elevator morph_move1 
  386. --------------------
  387. description: A sector that moves horizontally. The player doesn't move with
  388.              the sector. IMPORTANT - each of the moving sector's walls, as
  389.              well as any mirrors of those walls need to be given the flag 1
  390.              bit 32 (wall morph with sector). Otherwise, the sector would not
  391.              move visually.
  392.  
  393.              Stop values are distances on the X-Z (horizontal) plane.
  394.  
  395. usage:
  396.                         class: elevator morph_move1
  397.                         event_mask: 
  398.                         stop: 
  399.                         {master: }
  400.                         speed: 
  401.                         angle: 
  402.                         {key: }
  403.                         {slave: }
  404.                 
  405.  
  406. elevator morph_move2 
  407. --------------------
  408. description: A sector that moves horizontally. The player moves with 
  409.              the sector. IMPORTANT - each of the moving sector's walls, as
  410.              well as any mirrors of those walls need to be given the flag 1
  411.              bit 32 (wall morph with sector). Otherwise, the sector would not
  412.              move visually.
  413.  
  414.              Stop values are distances on the X-Z (horizontal) plane.
  415.  
  416.  
  417. usage: 
  418.                         class: elevator morph_move2
  419.                         event_mask: 
  420.                         stop: 
  421.                         {master: }
  422.                         speed: 
  423.                         angle: 
  424.                         {key: }
  425.                         {slave: }
  426.  
  427.  
  428. elevator morph_spin1 
  429. --------------------
  430. description: A sector that spins around a point. The player doesn't spin with
  431.              the sector. IMPORTANT - each of the spinning sector's walls, as
  432.              well as any mirrors of those walls need to be given the flag 1
  433.              bit 32 (wall morph with sector). Otherwise, the sector would not
  434.              spin visually.
  435.  
  436.              Stop values are angles in degrees.
  437.  
  438.  
  439. usage:
  440.                         class: elevator morph_spin1
  441.                         event_mask: 
  442.                         {stop: }
  443.                         {master: }
  444.                         speed: 
  445.                         center: 
  446.                         {key: }
  447.                         {slave: }
  448.  
  449. elevator morph_spin2 
  450. --------------------
  451. description: A sector that spins around a point. The player spins with 
  452.              the sector. IMPORTANT - each of the spinning sector's walls, as
  453.              well as any mirrors of those walls need to be given the flag 1
  454.              bit 32 (wall morph with sector). Otherwise, the sector would not
  455.              spin visually.
  456.  
  457.              Stop values are angles in degrees.
  458.  
  459.  
  460. usage: 
  461.                         class: elevator morph_spin2
  462.                         event_mask: 
  463.                         {stop: }
  464.                         {master: }
  465.                         speed: 
  466.                         center: 
  467.                         {key: }
  468.                         {slave: }
  469.  
  470.  
  471. elevator rotate_wall
  472. --------------------
  473. description: The walls of a sector with this elevator will rotate around
  474.              the specified center.
  475.  
  476.              Stop values are angles in degrees.
  477.  
  478.  
  479. usage: 
  480.                         class: elevator rotate_wall
  481.                         event_mask: 
  482.                         {stop: }
  483.                         {master: }
  484.                         speed: 
  485.                         center: 
  486.                         {key: }
  487.                         {slave: }
  488.  
  489.  
  490. elevator door
  491. -------------
  492. description: Normal door. Note, that it is easier to just use flag 1 bit 2
  493.              on a sector for a normal door. Elevator door is only
  494.              really needed for a key door.
  495.  
  496.              Make sure that a sector with this elevator has the
  497.              ceiling altitude of the door when it is OPEN!!!
  498.  
  499.  
  500. usage:
  501.                         class: elevator door
  502.                         {master: }
  503.                         {key: }
  504.  
  505.  
  506. elevator door_mid
  507. -----------------
  508. description: A 2 part door (opens upwards and downwards). Information for
  509.              the top and bottom parts are specified individually.
  510.              
  511.              "addon: 0" is the top part
  512.              "addon: 1" is the bottom part
  513.  
  514.              The floor altitude of a sector with this elevator has to be the
  515.              BOTTOM of the door. The ceiling altitude has to be the TOP of 
  516.              the door. The door will split halfway between.
  517.  
  518. usage:
  519.                         class: elevator door_mid
  520.                         {master: }
  521.                         addon: 0
  522.                         speed:
  523.                         {key: }
  524.                         addon: 1
  525.                         speed: 
  526.                         {key: }
  527.  
  528.  
  529.  
  530. elevator basic
  531. --------------
  532. description: floor that moves up and down.
  533.  
  534.              Stop values are the altitude of the floor.
  535.  
  536. usage:
  537.                         class: elevator basic
  538.                         event_mask: 
  539.                         stop: 
  540.                         {master: }
  541.                         speed: 
  542.                         {key: }
  543.                         {slave: }
  544.  
  545.  
  546. elevator inv 
  547. ------------
  548. description: ceiling that moves up and down. Often used for making doors.
  549.  
  550.              Stop values are the altitude of the ceiling.
  551.  
  552. usage: 
  553.                         class: elevator inv
  554.                         event_mask: 
  555.                         stop: 
  556.                         {master: }
  557.                         speed: 
  558.                         {key: }
  559.                         {slave: }
  560.                         
  561.  
  562. elevator move_ceiling 
  563. ---------------------
  564. description: Ceiling that moves up and down. In fact, pretty much the same as
  565.              elevator inv.
  566.  
  567.              Stop values are the altitude of the ceiling.
  568.  
  569.  
  570. usage: 
  571.                         class: elevator move_ceiling
  572.                         event_mask: 
  573.                         stop: 
  574.                         {master: }
  575.                         speed: 
  576.                         {key: }
  577.                         {slave: }
  578.  
  579.  
  580. elevator move_floor 
  581. -------------------
  582. description: floor that moves up and down. In fact, the same as elevator
  583.              basic.
  584.  
  585.              Stop values are the altitude of the floor.
  586.  
  587.  
  588. usage: 
  589.                         class: elevator move_floor
  590.                         event_mask: 
  591.                         stop: 
  592.                         {master: }
  593.                         speed: 
  594.                         {key: }
  595.                         {slave: }
  596.  
  597.  
  598. elevator move_fc 
  599. ----------------
  600. description: Floor and ceiling that move up and down together.
  601.  
  602.              Stop values are the altitude of the floor.
  603.  
  604. usage: 
  605.                         class: elevator move_fc
  606.                         event_mask: 
  607.                         stop: 
  608.                         {master: }
  609.                         speed: 
  610.                         {key: }
  611.                         {slave: }
  612.  
  613.  
  614. elevator scroll_ceiling 
  615. -----------------------
  616. description: ceiling texture scrolls
  617.  
  618.              Stop values are distances on the X-Z (horizontal) plane.
  619.  
  620. usage: 
  621.                         class: elevator scroll_ceiling
  622.                         event_mask: 
  623.                         {stop: }
  624.                         {master: }
  625.                         speed: 
  626.                         angle: 
  627.                         {slave: }
  628.  
  629.  
  630. elevator scroll_floor
  631. ---------------------
  632. description: floor texture scrolls. Player moves with it. Useful for making
  633.              conveyor belts, flowing water and flowing sewage. Remember, use
  634.              a second altitude with water and sewage for better effect!
  635.  
  636.              Stop values are distances on the X-Z (horizontal) plane.
  637.  
  638.  
  639. usage: 
  640.                         class: elevator scroll_floor
  641.                         event_mask: 
  642.                         {stop: }
  643.                         {master: }
  644.                         speed: 
  645.                         angle: 
  646.                         {slave: }
  647.  
  648.  
  649. elevator scroll_wall
  650. --------------------
  651. description: Wall texture scrolls. Useful for making waterfalls. Note that
  652.              you apply this elevator to a whole sector, but make specific
  653.              walls scroll by giving those walls flag 1 bit 64, 128, 256 or
  654.              512 in Levmap depending on whether you want the top, middle,
  655.              bottom or sign texture to scroll. Walls without any of these
  656.              flags will not scroll even if their sector is 
  657.              elevator scroll_wall.
  658.  
  659.              Stop values are distances on the Y (vertical) axis.
  660.  
  661. usage: 
  662.                         class: elevator scroll_wall
  663.                         event_mask: 
  664.                         {stop: }
  665.                         {master: }
  666.                         speed: 
  667.                         angle: 
  668.                         {slave: }
  669.  
  670.  
  671. Just a couple more things - for several of the vertically
  672. moving elevators, it may be necessary to anchor wall textures to prevent
  673. unnatural texture movement. This can be done by setting the flag 1 value for
  674. a wall to 16 (wall tx anchored) or 4096 (sign anchored) in Levmap.
  675.  
  676. An annoying thing is that it is not possible to anchor floor and ceiling 
  677. textures to a morphing sector. This is what I suggest - for a moving sector,
  678. add a "class: elevator scroll_floor" and/or "class: elevator scroll_ceiling"
  679. with exactly the same stops, angle and speed as the
  680. "class: elevator morph_move1", and the floor and/or ceiling textures will
  681. move together with the sector. For spinning sectors, all you can do is add
  682. a single coloured texture so you can't see the texture movement. The best
  683. texture for this (used by LucasArs too!) is ZPGRYFIL.BM.
  684.  
  685.  
  686.  
  687. 4. TRIGGERS
  688. -----------
  689.  
  690. Here are the triggers:
  691. -----------------------
  692. | trigger standard    |
  693. | trigger             |
  694. | trigger switch1     |
  695. | trigger single      |
  696. | trigger toggle      |
  697. -----------------------
  698.  
  699. If you thought elevators were complicated, don't worry! Triggers are extremely
  700. simple because all trigger classes are almost identical! ALMOST!
  701.  
  702. They are entered into the INF file as items in the same way as elevators with
  703. variables and information placed between the "seq" and "seqend", except that
  704. triggers can be applied to both sectors and walls:
  705.  
  706.  
  707. item: sector    name: [sector name]
  708.         seq
  709.  
  710.         seqend
  711.  
  712.                 
  713.                 ** OR **
  714.  
  715.  
  716. item: line      name: [sector name] num: [wall number]
  717.         seq
  718.  
  719.         seqend
  720.  
  721.  
  722. Here is a description of each trigger class and how to use it. The variables
  723. that are required by each class are shown. Any variables in {} are optional.
  724.  
  725. Note that anything in square brackets - [] - must be replaced with
  726. appropriate values. 
  727.  
  728. All triggers can have unlimited clients.
  729.  
  730. Note: If a specific message is not sent from a trigger to its client, then
  731.       the client will just move to its next stop.
  732.  
  733. IMPORTANT: Each time you add a trigger to the INF file, you must update
  734.            the "items #" at the start of the INF file.
  735.  
  736.  
  737.  
  738. trigger standard
  739. ----------------
  740. description: This can be applied to a sector (entering, leaving or nudging it)
  741.              or a line (crossing it or nudging it). 
  742.  
  743. usage:
  744.         
  745.                         class: trigger standard
  746.                         event_mask: 
  747.                         {entity_mask: }
  748.                         client: 
  749.  
  750.  
  751.  
  752. trigger
  753. -------
  754. description: exactly the same as trigger standard as far as I know.
  755.  
  756. usage:
  757.  
  758.                         class: trigger      
  759.                         event_mask: 
  760.                         {entity_mask: }
  761.                         client: 
  762.  
  763.  
  764.  
  765.  
  766. trigger switch1
  767. ---------------
  768. description: this is used specifically for switch triggers. Remember, the wall
  769.              containing the switch must have a sign which is a switch texture
  770.              or the trigger will NOT operate.
  771.  
  772.                         
  773. usage:                        
  774.                         class: trigger switch1 
  775.                         event_mask: 
  776.                         {entity_mask: }
  777.                         client: 
  778.  
  779.  
  780. trigger single
  781. --------------
  782. description: this is a trigger that can only be used once. Can only be
  783.              applied to lines - sectors will be able to be triggered more  
  784.              than once! 
  785.  
  786. usage:
  787.  
  788.                         class: trigger single     
  789.                         client: 
  790.                         event_mask: 
  791.                         {entity_mask: }
  792.  
  793.  
  794.  
  795.  
  796.  
  797. trigger toggle
  798. --------------
  799. description: this toggles an elevator between stops. Therefore, the client
  800.              sector MUST have more than one stop. 
  801.  
  802. usage: 
  803.  
  804.                         class: trigger toggle
  805.                         event_mask: 
  806.                         {entity_mask: }
  807.                         client: 
  808.  
  809.  
  810.  
  811. 5. TELEPORTER CHUTES
  812. --------------------
  813. Teleporter chutes are a special third element of the INF file. They are not
  814. elevators or triggers. Their function is to teleport the player to another 
  815. sector.
  816.  
  817.  
  818. NOTE:
  819.  
  820. Dark Forces teleporter chutes do not have the same intention as the
  821. teleporters in DOOM. In DOOM, teleporters are deliberate and are just another
  822. fun aspect of a level. In Dark Forces, they are not intended to even be
  823. noticed. They are intended to make it look like the player has just 
  824. fallen through a chute into a layer below, for example, in the Robotics
  825. Facility where you fall into the gas room, and Jabba's Ship where you
  826. fall into the area where you rescue Jan. These cases could only be 
  827. accomplished through teleporter chutes because the other method (using
  828. a same sector in both layers) would mean making double adjoin/mirror/walks
  829. for the walls of that sector - something not possible.
  830.  
  831. Consequently, you can only teleport straight down, so the target sector
  832. MUST be directly below the teleporter chute and must totally enclose the
  833. teleporter chute or it may be possible to teleport outside of a sector. 
  834.  
  835. It is also possible to teleport up, as in the demo, but this is never
  836. really necessary.
  837.  
  838.  
  839. IMPORTANT: Each time you add a teleporter chute  to the INF file, you must
  840.            update the "items #" at the start of the INF file.
  841.  
  842. usage:
  843.         item: sector    name: [sector name]
  844.                 seq
  845.                         class: teleporter chute
  846.                         target: [target sector's name]
  847.                 seqend
  848.  
  849.  
  850.  
  851. 6. MESSAGES
  852. -----------
  853.  
  854. Here are the messages:
  855. ------------------
  856. | complete       |
  857. | done           |
  858. | goto_stop      |
  859. | next_stop      |
  860. | prev_stop      |
  861. | master_on      |
  862. | master_off     |
  863. | m_trigger      |
  864. | clear_bits     |
  865. | set_bits       |
  866. | wakeup         |
  867. ------------------
  868.  
  869. A description of each message and its usage follows. Anything in [] has to be
  870. replaced appropriately.
  871.  
  872. Note that for messages that are sent from triggers to elevators, the client of
  873. the trigger must first be specified (obviously). 
  874.  
  875. When messages are sent from an elevator, they are sent when it ARRIVES at a
  876. stop. Therefore, messages can't be sent from stop 0 unless the elevator is
  877. sent there after going to another stop.
  878.  
  879. Messages are placed in the sequence of a trigger or an elevator (between the 
  880. seq and seqend).
  881.  
  882.  
  883. complete
  884. --------
  885. Description: tells an elevator that a trigger goal has been completed. The
  886.              final num refers to the "TRIG: [num]" in the GOL file. The
  887.              corresponding goal in your Personal Data Assistant (F1) will
  888.              then be shown to be complete. For convenience, send this message
  889.              to your completion elevator (the one with the "complete" stop).
  890.  
  891.              This message also sends its recipent elevator to its
  892.              next stop. 
  893.  
  894.  
  895. usage (trigger to elevator):
  896.                                 
  897.         message: complete [num]
  898.  
  899.  
  900. usage (elevator to elevator):
  901.                                 
  902.         message: [stop] [elevator name] complete [value]
  903.  
  904.  
  905. done
  906. ----
  907. description: Sent from an elevator to a switch trigger. Tells the switch that
  908.              it is ready to be used again (UNLESS it is a trigger single).
  909.  
  910. usage:
  911.         
  912.         message: [stop] [sector name]([trigger line number]) done
  913.  
  914.  
  915. goto_stop
  916. ---------
  917. description: sent from a trigger to an elevator or an elevator to an elevator. 
  918.              Sends the elevator to a specified stop.
  919.  
  920. usage (from trigger to elevator):
  921.         
  922.         message:  goto_stop [stop number]
  923.  
  924. usage (from elevator to elevator):
  925.  
  926.         message: [stop] [elevator name] goto_stop [stop number]
  927.  
  928.  
  929. next_stop
  930. ---------
  931. description: sent from a trigger to an elevator or an elevator to an elevator. 
  932.              Sends the elevator to its next stop.
  933.  
  934. usage (trigger to elevator):
  935.         
  936.         message: next_stop
  937.  
  938. usage (elevator to elevator):
  939.  
  940.         message: [stop] [elevator name] next_stop
  941.  
  942.  
  943. prev_stop
  944. ---------
  945. description: sent from a trigger to an elevator or an elevator to an elevator.
  946.              Sends the elevator to its previous stop.
  947.  
  948. usage (trigger to elevator): 
  949.         
  950.         message: prev_stop
  951.  
  952. usage (elevator to elevator):
  953.  
  954.         message: [stop] [elevator name] prev_stop
  955.  
  956.  
  957. master_on
  958. ---------
  959. description: sent from a trigger to an elevator or an elevator to an elevator.
  960.              Turns the elevator's master on.
  961.  
  962. usage (trigger to elevator):
  963.         
  964.         message: master_on
  965.  
  966. usage (elevator to elevator):
  967.  
  968.         message: [stop] [elevator name] master_on
  969.  
  970.  
  971. master_off
  972. ---------
  973. description: sent from a trigger to an elevator or an elevator to an elevator.
  974.              Turns the elevator's master off.
  975.  
  976. usage (trigger to elevator):
  977.  
  978.         message: master_off
  979.  
  980. usage (elevator to elevator):
  981.  
  982.         message: [stop] [elevator name] master_off
  983.  
  984.  
  985. m_trigger
  986. ---------
  987. description: when sent to a trigger, this message triggers it no matter what
  988.              its event_mask is. Useful for triggering dummy trigger sectors 
  989.              that display messages from TEXT.MSG since "text" (see below)
  990.              can only be sent when a trigger is triggered.
  991.  
  992. usage: (trigger to sector)
  993.  
  994.         message: m_trigger
  995.  
  996. usage: (elevator to sector)
  997.  
  998.         message: [stop] [sector name] m_trigger
  999.  
  1000. usage: (elevator to line)
  1001.  
  1002.         message: [stop] [sector name]([line number]) m_trigger
  1003.  
  1004.  
  1005. clear_bits
  1006. ----------
  1007. description: sent from a trigger to an sector or an elevator to a sector or
  1008.              wall. Clears specified flag bits. To clear more than one bits
  1009.              from a sector a wall, add the bit values up that you want
  1010.              cleared.
  1011.  
  1012.  
  1013. usage (trigger to sector):  
  1014.         
  1015.         message: clear_bits [flag number] [bit number]
  1016.  
  1017. usage (elevator to sector):
  1018.  
  1019.         message: [stop] [sector name] clear_bits [flag number] [bit number]
  1020.  
  1021. usage (elevator to line):
  1022.  
  1023.        message: [stop] [sector name]([line number]) clear_bits [flag number] [bit number]
  1024.  
  1025.  
  1026. set_bits
  1027. ----------
  1028. description: sent from a trigger to an sector or an elevator to a sector or
  1029.              wall. Sets specified flag bits. To set more than one flag to a
  1030.              sector or wall, add up the bit values that you want to be set.
  1031.  
  1032.  
  1033. usage (trigger to sector):  
  1034.         
  1035.         message: set_bits [flag number] [bit number]
  1036.  
  1037. usage (elevator to sector):
  1038.  
  1039.         message: [stop] [sector name] set_bits [flag number] [bit number]
  1040.  
  1041. usage (elevator to line):
  1042.  
  1043.        message: [stop] [sector name]([line number]) set_bits [flag number] [bit number]
  1044.  
  1045.  
  1046. wakeup
  1047. ------
  1048. description: sent from a trigger to a sector or an elevator to a sector. Wakes
  1049.              up objects in that sector. Useful for waking up generators and 
  1050.              3DO object animations (VUE file).
  1051.  
  1052.  
  1053. usage (trigger to sector):
  1054.  
  1055.         message: wakeup
  1056.  
  1057. usage (elevator to sector):
  1058.  
  1059.         message: [stop] [sector name] wakeup
  1060.  
  1061.  
  1062.  
  1063. 7. OTHER STUFF
  1064. --------------
  1065. Here are some other things that I have come across in INF files.
  1066.  
  1067.  
  1068. Page
  1069. ----
  1070. "Page" plays a sound effect when an elevator arrives at a stop. "Page" is
  1071. placed in an elevator's sequence (between seq and seqend).
  1072.  
  1073. Usage:
  1074.  
  1075.         page: [stop] [VOC file]
  1076.  
  1077.  
  1078. Text
  1079. ----
  1080. "Text" displays a text message from TEXT.MSG on the top of the screen. Add
  1081. your own messages on the end of TEXT.MSG if you want! Messages are sent by
  1082. triggers when they are triggered. "Text" is placed in a trigger's sequence.
  1083.  
  1084. usage:
  1085.  
  1086.         text: [text number - see text.msg]
  1087.  
  1088.  
  1089. Sound
  1090. -----
  1091. "Sound" replaces the default sound effects of an elevator or switch trigger
  1092. with another VOC file or silence. Most elevators have 3 sound effects -
  1093. leaving a stop, moving between stops, and arriving at a stop. Switches only
  1094. have one sound - when the switch is pressed. "Sound" is placed in an
  1095. elevator's or switch trigger's sequence.
  1096.  
  1097.  
  1098. usage (replacing a sound effect, elevators):
  1099.  
  1100.         sound: [sound value] [VOC file]
  1101.  
  1102. usage (replacing a sound effect, triggers):
  1103.  
  1104.         sound: [VOC file]
  1105.  
  1106.  
  1107. usage (replacing a sound effect with silence, elevators):
  1108.  
  1109.         sound: [sound value] 0
  1110.  
  1111. usage (replacing a sound effect with silence, triggers):
  1112.  
  1113.         sound: 0
  1114.  
  1115.  
  1116. Here are some good replacement sound effects:
  1117.  
  1118. For value 1 (elevators, leaving a stop)
  1119. DOOR1-1.VOC
  1120. DOOR2-1.VOC
  1121. DOOR3-1.VOC
  1122. ELEV1-1.VOC
  1123. ELEV2-1.VOC
  1124. ELEV3-1.VOC
  1125.  
  1126. For value 2 (elevators, moving between stops)
  1127. DOOR1-2.VOC
  1128. DOOR2-2.VOC
  1129. DOOR3-2.VOC
  1130. ELEV1-2.VOC
  1131. ELEV2-2.VOC
  1132. ELEV3-2.VOC
  1133. ELECTRIC.VOC -- broken door, like in Talay
  1134.  
  1135. For value 3 (elevators, arriving at a stop)
  1136. DOOR1-3.VOC
  1137. DOOR2-3.VOC
  1138. DOOR3-3.VOC
  1139. ELEV1-3.VOC
  1140. ELEV2-3.VOC
  1141. ELEV3-3.VOC
  1142.  
  1143. For switches
  1144. SWITCH1.VOC
  1145. SWITCH2.VOC
  1146. SWITCH3.VOC
  1147.  
  1148.  
  1149. adjoin
  1150. ------
  1151. "Adjoin" adjoins a line to another line when an elevator arrives at a stop.
  1152. This is required if you need a line to remove its adjoin with one line and 
  1153. adjoin with another line midway through a level. "Adjoin" is placed in an
  1154. elevator's sequence.
  1155.  
  1156. For example, in level 6 (detention center), you may notice that the 2 main
  1157. lifts have a door on each layer adjoined to it on the same line. Since a line
  1158. cannot be adjoined to more than one other line at once, the following occurs:
  1159. midway through moving up between 2 layers, the elevator move_floor arrives at
  1160. a stop which it remains at for 0 seconds. At this stop, a line of the lift
  1161. sector is adjoined to a line of the door sector on the layer above, at the
  1162. same time removing its adjoin with a line of the door sector on the layer
  1163. below. The lift's doors all appear to be directly on top of each other.
  1164.  
  1165. usage:
  1166.  
  1167. adjoin: [stop] [sector name] [line number] [sector name] [line number]
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173. Well, that's all folks! If you have anything to add to this file, if you want
  1174. to correct something I have wrong, if you want to explain one of the unknown
  1175. things to me or if you just want to comment or ask a question, mail me at
  1176.  
  1177. kokj4m@stmichaels.vic.edu.au
  1178.  
  1179. Any additions, corrections or explanations will be put in an updated version
  1180. of this file. Include your name so that I can credit you.
  1181.  
  1182. Please distribute this file like crazy! Upload it on bulletin boards,
  1183. Internet pages, FTP sites, BBS sites etc!
  1184.  
  1185.  
  1186. Until next time, Happy Dark Forces level making!
  1187.  
  1188. ÇhΔ{V@Ä€˛@Ä{†%@Ä›ÿ@~ˇˇMSWD ~‡}–//{èp{Œ@Äö
  1189. /‡vN{VÄÙ{Å@ ‡‡}–/‡vN{VÄÙ{Å@ ‡‡}–Microsoft Word letterô‘ô‘{V@Äö
  1190. /{»ô Ã<Z @Å@Åπî@ÅπR Z†@ÅF
  1191. òWDw†ÃÃ&P{úˇΔ{V@Ä€˛@Ä{†%@Ä›ÿ@~ˇˇMSWD ~‡}–//{èp{Œ@Äö
  1192. /‡vN{VÄÙ{Å@ ‡‡}–‡vN{VÄÙ{Å@ ‡‡}–?ˇ ˇ?ˇûˇπqÇÒ·‰c√»„Éê« ΔF@ååÄââ
  1193. éEéI˙Ù
  1194. @
  1195. ?~Ω¸˝˛"#c≠·(m≠ÆØ“‘h≥˝HÄÅŒi∏NóÂd∞˝    I    |    }    ~    á    ê    ë    ©    —    fi    Í    ˇ
  1196. 
  1197. 
  1198. B
  1199. h
  1200. i
  1201. ∑  M è ê ‹ * x ¡
  1202. 
  1203. ]
  1204. w
  1205. x
  1206. ¡*RSñ‹$FGHWÅ©—˘!Iqô¡È9ab˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚'Ï cb∞˘
  1207. i∞ˇKôÂ0{àâê≈Δ«Œ’‚„/tøÁËÔ+,xΩ/0vºHé‘`´Ò7}◊k¥ˇ#$%+1>?â‘jvwƒ`Æ˚Eóπ∫ª¬Ÿ⁄€ÁÛ > M N ã å˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚'Ï c å ⁄!(!w!≈""a"Ø"˝#K#ô#Á#Ë$4$k$l$∫%%R%ù%±%≤%π%∫%◊%ÿ%Ÿ%⁄%‡%Ê%Û%Ù&/&J&K&R&i&j&k&r&y&Ü&á&œ&‡&·&Ë' '
  1208. ''''''('q'ª(    (9(:(A(V(W(X(\(`(m(n(∫))))#)@)A)B)I)P)])^)•)Æ)Ø)∂)€)‹)›)„)È)ˆ)˜*A*è*¢*£*™*Õ*Œ*œ*–*—˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚'Ï c*—*“*fl*Ï*Ì++(+K+n+ë+¥+◊+˙,,@,c,Ü,©,Ã,Ô--5-X-{-û-ü-ƒ-≈-Δ-Í-ˆ-˜....V.†.„.‰/2/~//¬/÷/◊0#0e0ä0ã0’1 1
  1209. 11%1;1s1Å1Ø1∞1∏1Ì2252T2z2ú2ù2û2∫2’3 3h3≤3˝4=4>4k4l4s4≠4“4ı5535U5V5W5m5Ç5Œ66e6≥6œ6–7777R7w˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚'Ï c7w7ñ7π7Ÿ7˘88;8L8M8c8x8æ9    9U9£9ø9¿:::::D:i:à:´:À:Î; ;-;.;/;E;Z;®;ı<A<è<´<¨<‹<›<fi<Â==>=_=Ç=¢=√=„>>>>1>y>Δ??`?|?}?≠?Æ?Ø?∑?Î@@1@T@t@ï@µ@◊@ÿ@Ÿ@ÓAALAoApA†A°A¢A™AfiBB$BGBgBàB®B BÀBÃB⁄BËC3CuC†C°C·˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚'Ï cC·DDD D'DTDwDóDòDôD´DΩEEIEWEE™E´E¯FDFÄFÅFàFπF‹F˝GG<G]G}GùGûGüG†GØGæGÈGÍH"H#H*HXH}HúHøHflHˇI!I"I#I1I>IàIâI√IƒIÃI¯JJ<J_JJüJ¡J⁄J€JÚKKVKqKrK¨K≠KÆK∂KÎLL/LRLrLíL¥LµL∂LÀLflM(M<M=MuMvMwMM≤M◊MˆNN9NYN{˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚'Ï cN{N|N}NèN†NflN‡OOO!OQOvOïO∏OÿO¯PPPP5PMPrPsPπP∫P¬P˘QQ?QbQÇQ¢QƒQ≈QΔQ‹QÚR>RãR”R‘SSSS$SYS~SüS¬S‚TT$T%T&T;TPTõTÂU0UzUƒVV#V$VeVfVnV¢V«VËW W+WKWmWnWoW©WÚX?XÇXÉXÕYYgYõYÂZ0ZzZ≥Z¥ZµZ∂Z¬ZŒZœZÊZ˛[[.[F˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚'Ï c[F[^[v[é[è[fi\\ \n\ª\Ó\Ô\]] ]!]0]1]B][]\]]]î]†]°]∞]±]≤]ˇ^L^M^ê^•^¶^œ^–__M_N_ñ_Õ_Œ_œ_–_·_Ú`A`v`w`~`á`∑`‹aa%a&a'a(a0a8a|a}aÑaÖa≤a◊aˇb b!b"b#b$b4bDbìb·ccc)cHcxcùc≈cÊcÁcËc˜ddMdôd≤d≥d∫dªdÓee4e\e]e^˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚'Ï ce^e_e`eaepee e˝e˛fff5fZfÇf£f§f•f¶fªf–gghgpgqgrgxgygΩh hShòh‡i&iji±i¸j3j4j|j≈kkkUkgkhkik¥kÚkÛk˙l&l:ljl°l∏lπl∫lªl«l”l‘lÎl˛mm$m7mJm]mpmÉmñm©mºmœm‚m„n1nInJnônÀnÃoocoãoåo⁄oÎoÏoÌoˆoˇpJpíp‹q*qwqxq∫q”˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚'Ï cq”q‘q’qÚrr3r4r5rSrtr≠rÆrØr¥rπssRsSsZscs•s¶sßs±sªt t@tAtctltñtót∫tªt˚t¸t˝uuuauìuîu±u∫u’u÷uÙuıv'v(v)v3v=våv¬v√v·vÍwww$w%wWwXwYwcwmwºwÈwÍxxx+x,xJxKx}x~xxäxîx„yyy/y0yLyMykylyüy†y°y´yµzzOzôz‘z’˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚'Ï cz’zzÒ{ {
  1210. {){*{Z{[{u{v{µ{∂{∑{¬{Õ||d|´|¡|¬|√|‡|È} }!}=}>}ä}ã}•}¶~~~~ ~~b~Æ~˙~˚~¸"WXtuø¿⁄€Ä3Ä4Ä5Ä<ÄCÄíÄflÅÅÅÅ+Å,ÅDÅEÅaÅbÅèÅêÅëÅíÅ°Å∞ÅÒÅÚÅÛÅ¯Å˝ÇGÇÇÇÉÇäÇãǴǨÇ≠Ç≤Ç∑ÉÉMÉôÉöÉ°É¢ÉÕɌɜ˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚ˆ˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚ˆ˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚'Ï 'Ï aɜɒɀÑ'ÑoѪÖÖ)Ö*Ö+ÖXÖYÖÅÖÇÖÆÖØÖ…Ö ÖÀÜÜÜ%Ü&Ü_Ü`ÜqÜrÜsܰܢܠÜ÷Ü‚ÜÓÜ˙ááááAáMáYáeáqá}áâá¥áµá·áÌá˘àààà)à*à7àCàOà[à\à]àdàkà∑ââMâbâcâÆâ¸äJäòä„ã.ãxã¿ã¡ã»ã…åååååååcå∞å˙å˚çççfç†ç°çÁééééDéE˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚˚'Ï c
  1211. fiçEéE    BK+$Ÿ(∂.26=CôI€OsW?]–c≥jÛq3v%{´Ä°Ö÷ã˙çEˇˇ&ˇˇNˇˇˇˇˇˇ%ˇˇLˇˇˇˇˇˇ    ˇˇ
  1212. ˇˇ Fˇˇ Cˇˇ
  1213. Kˇˇˇˇˇˇˇˇ2ˇˇˇˇˇˇ ˇˇˇˇéIHb å*—7wC·N{[Fe^q”z’ÉœéEIJKLMNOPQRSTùûü†°ß—”⁄€Ôıˆ    ”
  1214. P »HH⁄(ˇ·ˇ‚˘FG(¸HH⁄(d'ê@=‡/–ÄÄ–“@ÄH 
  1215. -:LaserWriter
  1216. MonacoTimesçEçE¿  ÄÄ E’KEK